#pragma once

#include <string>

#include "codegenerator.h"

using std::vector;
using std::string;
using std::map;

using namespace Thinder;

vector<ParseTree::IdentRest> primaryPostToIdentRest(ParseTree::PrimaryPost &pp);
Symbol getDesignatorSymbol(ParseTree::Name ns, ParseTree::Designator &designator);
void generateIdentRest(ParseTree::Name ns, Symbol &parent, ParseTree::IdentRest &rest, string &c, bool last, ParseTree::Type typeHint);
string generateDesignator(ParseTree::Name ns, ParseTree::Designator &designator, ParseTree::Type typeHint);
